package red.social;

import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.URL;
import java.net.URLConnection;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.AdapterView.OnItemClickListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;

public class Amigos extends Activity {
	String ip;
	Fila[] amigos;
	Integer [] idamigos;
	ListView lstAmigos;
	Context context;
	EditText editbuscar;
	Bundle parametros;
	int idusuario;
	Bitmap imagen;
	
	
	
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.amigos);
		
		Button botonBT = (Button)findViewById(R.id.botonBT);
	
	
		Button botonMapa = (Button)findViewById(R.id.botonMapa);
		
		botonMapa.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				Intent posicion = new Intent(getApplicationContext(), ActividadPosicion.class);
				posicion.putExtra("idamigo", idusuario);
	            startActivity(posicion);
			
			}
		});
		
		botonBT.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent chat = new Intent(getApplicationContext(), BluetoothChat.class);
	            startActivityForResult(chat,2);
			}
		});
		
		
		
		context = this.getApplicationContext();
		ip = getResources().getString(R.string.ip);
		parametros = getIntent().getExtras();
		idusuario = parametros.getInt("idUsuario");
		String nombre;
		String apellidos;
		String email;
		String estado;
		try {
			String servletURL = "http://" + ip
					+ ":8080/Modulo10-war/ObtenerAmigos";

			URL ob = new URL(servletURL + "?idusuario="+idusuario);
			URLConnection conn = ob.openConnection();
			conn.setDoInput(true);
			conn.setDoOutput(true);
			InputStream in = conn.getInputStream();
			ObjectInputStream dos = new ObjectInputStream(in);
			
			int tamano = dos.readInt();
			amigos = new Fila[tamano];
			idamigos = new Integer[tamano];
			byte[] bimagen;
			
			for (int i = 0;i < tamano;i++) {
				
				idamigos[i] = (Integer)dos.readObject();
				nombre = (String)dos.readObject();
				apellidos = (String)dos.readObject();
				email = (String)dos.readObject();
				estado = (String)dos.readObject();
				bimagen = (byte[])dos.readObject();
				imagen = BitmapFactory.decodeByteArray(bimagen, 0, bimagen.length);
				amigos[i] = new Fila(nombre+" "+apellidos+"\n"+"Estado: "+estado, imagen, context);		
				Adaptador adaptador = new Adaptador (this);
				lstAmigos = (ListView)findViewById(R.id.lstamigos);	
				lstAmigos.setAdapter(adaptador);
			}
			
			dos.close();
			
			
			lstAmigos.setOnItemClickListener(new OnItemClickListener() {
			
				public void onItemClick(AdapterView<?> parent, View view,
						int position, long id) {
									
					String ida = String.valueOf(idamigos[position]);
					Intent miIntent = new Intent(getApplicationContext(),PerfilAmigo.class);
					miIntent.putExtra("idusuario", idusuario);
					miIntent.putExtra("idamigo", ida);
					startActivity(miIntent);
				}
			});
			
			Button botonbuscar = (Button)findViewById(R.id.buttonBuscarAmigo);
			botonbuscar.setOnClickListener(new View.OnClickListener() {
				
				@Override
				public void onClick(View v) {
					editbuscar = (EditText)findViewById(R.id.EditTextbuscamigo);
					String nombreamigo = editbuscar.getText().toString();
					
					Intent miIntent = new Intent(getApplicationContext(),ResultBusq.class);
					miIntent.putExtra("nombreamigo", nombreamigo);
					miIntent.putExtra("idusuario", idusuario);
					startActivity(miIntent);
					
				}
			});
			
			Button botoninvitar = (Button)findViewById(R.id.botonInvitar);
			botoninvitar.setOnClickListener(new View.OnClickListener() {
				
				@Override
				public void onClick(View v) {															
					Intent miIntent = new Intent(getApplicationContext(),Contactos.class);					
					startActivity(miIntent);
					
				}
			});
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	
class Adaptador extends ArrayAdapter {
    	
    	Activity context;
    	
    	Adaptador(Activity context) {
    		super(context, R.layout.fila, amigos);
    		this.context = context;
    	}
    	
    	public View getView(int position, View convertView, ViewGroup parent) 
    	{
			View item = convertView;
			ViewHolder holder;
			try {
    		if(item == null)
    		{
    			
    			LayoutInflater inflater = context.getLayoutInflater();
    			item = inflater.inflate(R.layout.fila, null);
    			
    			holder = new ViewHolder();
    			holder.foto = (ImageView)item.findViewById(R.id.Foto);
    			holder.info = (TextView)item.findViewById(R.id.Info);
    			
    			item.setTag(holder);
    			
    		}
    		else
    		{
    			holder = (ViewHolder)item.getTag();
    		}
			
		
			holder.info.setText(amigos[position].getInfo());
			holder.foto.setImageBitmap(amigos[position].getbitmap());
			} catch (Exception e){
				e.printStackTrace();
			}
			return(item);
		}
    }
    
    static class ViewHolder {
    	ImageView foto;
    	TextView info;
    }

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		idamigos = null;
	}
}
